pytorch中张量、数组、列表类型之间的转化方法

您所在的位置:网站首页 python list转化为数组 pytorch中张量、数组、列表类型之间的转化方法

pytorch中张量、数组、列表类型之间的转化方法

2023-07-18 07:32| 来源: 网络整理| 查看: 265

张量和其他相关类型之间的转化

张量、数组、列表是较为相似的三种类型对象,会涉及到三种对象的相互转化。在张量创建的过程中,torch.tensor()函数可以将数组或列表转化为张量,同样也可以将张量转化为数组或列表。 前面介绍了0维张量的概念,此处将进一步给出零维张量和数值对象的转化方法。 (1).numpy()方法:张量转化为数组

#方法一 t1 = torch.tensor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) #结果为:tensor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) t1.numpy() #结果为:array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype = int64) #方法二,通过np.array()函数直接转化为array np.array(t1) #结果为:array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype = int64)

(2).tolist()方法:张量转化为列表

t1.tolist() #结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

(3).list()方法:张量转化为列表

#方法一 list(t1) #结果为:[tensor(1), tensor(2), tensor(3), tensor(4), tensor(5), tensor(6), tensor(7), tensor(8), tensor(9), tensor(10)]

注意:此时转化的列表是由一个个零维张量构成的列表,而非张量的数值组成的列表 (4).item()方法:张量转化为数值 一些情况下,需要将最终计算的结果张量转化为单独的数值进行输出,此时需要使用.item()方法来执行。

#方法一 t2 = torch.tensor(1) t2.item() #结果为:1

注意:此方法只可使用在零维张量中,即此张量只有一个元素的零维张量 (5)张量的深拷贝 张量与Python 中其他对象类型一样,等号赋值操作实际上是浅拷贝,需要进行深拷贝,则需要使用clone方法。 在这里插入图片描述 注意:此处,t1和t11二者指向相同的对象,而要使得t11不随t1对象改变而改变,则需要对t11进行深拷贝,从而使得t11单独拥有一份对象。 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3